print(hash(1))  # 1
print(hash(1.0))  # 1
print(hash(1.001))  # 2305843009213441

print(hash("FishC"))  # 3566372565351570086

# 对于一个可变的对象，无法计算 hash 值
# print(hash([1, 2, 3]))  # TypeError: unhashable type: 'list'

# 元组是不可变的，可以hash
print(hash((1, 2, 3)))  # 529344067295497451

print({'Python': 520, 'FishC': 1314})

# 但是，这样写,就报错了，因为 列表 [1, 2, 3] 是不可 hash 的
# print({[1, 2, 3]: "FishC"})  # TypeError: unhashable type: 'list'

print({"Python", 520, 'FishC'})  # {520, 'FishC', 'Python'} 三个元素都可以被 hash

# 但是,就报错，因为 列表 是不可 hash 的
# print({"Python", 520, 'FishC', [1, 1, 2]})  # TypeError: unhashable type: 'list'

# 嵌套集合可以吗？
x = {1, 2, 3}
# y = {x, 4, 5}  # TypeError: unhashable type: 'set', 因为 集合是一个可变的容器，可变的容器是不可以hash的

frozenset_x = frozenset({1, 2, 3})
y = {frozenset_x, 4, 5}
print(y)  # {frozenset({1, 2, 3}), 4, 5}

